define(function () {
    return function ($compile, $scope) {
        require(
            ["AppPathDir/fleet/cteamReserveInfos/support", "AppPathDir/fleet/cteamReserveInfos/reserve", "AppPathDir/fleet/cteamReserveInfos/pay", "AppPathDir/fleet/cteamReserveInfos/update", "PDUtilDir/util",
                "PDUtilDir/tool", "PDUtilDir/slidebar",
                "PDUtilDir/inputSelect", "Date", "DateCN", "css!DateCss"],
            function (Support, ReserveSupport, PaySupport, UpdateSupport, Util, Tool, Slidebar, inputSelect) {
                $scope.cache = {
                    status: new Array(),
                    statuMap: new Map(),
                    type: new Array(),
                    typeMap: new Map(),
                    payTypeMap: new Map(),
                    payTypes: new Array(),
                    payStatus : new Array(),
                    payStatuMap: new Map()
                };
                $scope.search = {};

                /* 查询 start */
                $scope.searchSupport = {
                    run: function () {
                        $scope.grid.reload({
                            queryParam: {
                                model: JSON.stringify($scope.search)
                            }
                        })
                    }
                };

                // 预定详情
                $scope.reserveSupport = ReserveSupport($scope, $compile);

                // 修单
                $scope.updateSupport = UpdateSupport($scope, $compile);

                // zhifu
                $scope.paySupport = PaySupport($scope, $compile);

                // 否定
                $scope.closeSupport = {
                    run : function(id) {
                        Util.confirm("是否否定", function() {
                            $.ajax({
                                url : getServer() + "/flea/hclv/car/reserve/updateReserveStatus.htmls",
                                data : {
                                    model : JSON.stringify({
                                        id: id,reserveStatus: 'D_CAR_RESERVE_STATUS_CANCEL'
                                    })
                                },
                                success : function(data) {
                                    if (data.status != 200) {
                                        return;
                                    }
                                    Util.alert(data.message);
                                    $scope.grid.refresh();
                                }
                            });
                        })
                    }
                };

                // 确认
                $scope.sureSupport = {
                    run : function(id) {
                        Util.confirm("是否确认", function() {
                            $.ajax({
                                url : getServer() + "/flea/hclv/car/reserve/updateReserveStatus.htmls",
                                data : {
                                    model : JSON.stringify({
                                        id: id,reserveStatus: 'D_CAR_RESERVE_STATUS_YES'
                                    })
                                },
                                success : function(data) {
                                    if (data.status != 200) {
                                        return;
                                    }
                                    Util.alert(data.message);
                                    $scope.grid.refresh();
                                }
                            });
                        })
                    }
                };
                // 支付类型
                $.ajax({
                    url : getServer() + "/flea/hclv/getPayType.htmls",
                    success : function(data) {
                        $scope.cache.payTypes = data.data;
                        $.each(data.data, function(index, row) {
                            $scope.cache.payTypeMap.set(row.dictCode, row.dictName);
                        });
                    }
                });

                //支付状态列表
                $.ajax({
                    url : getServer() + "/flea/hclv/getCarReservePayStatus.htmls",
                    success : function(data) {
                        if (data.status != 200) {
                            return;
                        }
                        $scope.cache.payStatus = data.data;
                        $.each(data.data, function(index, row) {
                            $scope.cache.payStatuMap.set(row.dictCode, row.dictName);
                        });
                        init();
                    }
                });

                //车辆类型
                $.ajax({
                    url: getServer() + "/flea/hclv/getVehicle.htmls",
                    success: function (data) {
                        $scope.cache.type = data.data;
                        $.each(data.data, function (index, row) {
                            $scope.cache.typeMap.set(row.dictCode, row.dictName);
                        });
                        init();
                    }
                });
                //预定状态
                $.ajax({
                    url: getServer() + "/flea/hclv/getCarReserveStatus.htmls",
                    success: function (data) {
                        if (data.status != 200) {
                            return;
                        }
                        $scope.cache.status = data.data;
                        $.each(data.data, function (index, row) {
                            $scope.cache.statuMap.set(row.dictCode, row.dictName);
                        });
                        init();
                    }
                });
                var init = function () {
                    if ($scope.cache.status.length > 0 && $scope.cache.type.length > 0 && $scope.cache.payStatus.length > 0) {
                        $scope.grid = Support.init($scope.cache, $scope.reserveSupport, $scope.searchSupport);
                        //订单状态
                        inputSelect.dropCache();
                        inputSelect({
                            id: "statusInput",
                            key: {
                                id: "dictCode",
                                name: "dictName",
                                data: "data",
                            },
                            data: $scope.cache.status,
                            simpleData: true,
                            searchAble: false,
                            callback: function (id) {
                                $scope.search.reserveStatus = id[0];
                            }
                        });
                        // $("#startTime").datetimepicker({
                        //     //设置使用语言：cn是自定义的中文版本，还可以扩展其他语言版本
                        //     language : "cn",
                        //     //输出格式化
                        //     format : 'yyyy-mm-dd hh:ii:ss',
                        //     //直接选择‘今天’
                        //     todayBtn : true,
                        //     //设置最精确的时间选择视图
                        //     minView : 'hour',
                        //     //高亮当天日期
                        //     todayHighlight : true,
                        //     //显示“上午”“下午”
                        //     showMeridian : true,
                        //     //选择完毕后自动关闭
                        //     autoclose : true
                        // });
                        // $("#endTime").datetimepicker({
                        //     //设置使用语言：cn是自定义的中文版本，还可以扩展其他语言版本
                        //     language : "cn",
                        //     //输出格式化
                        //     format : 'yyyy-mm-dd hh:ii:ss',
                        //     //直接选择‘今天’
                        //     todayBtn : true,
                        //     //设置最精确的时间选择视图
                        //     minView : 'hour',
                        //     //高亮当天日期
                        //     todayHighlight : true,
                        //     //显示“上午”“下午”
                        //     showMeridian : true,
                        //     //选择完毕后自动关闭
                        //     autoclose : true
                        // });
                    }
                }
            })
    }
});